# part1 基础练习

'''
basic -21 Sine之舞

问题描述
　　最近FJ为他的奶牛们开设了数学分析课，FJ知道若要学好这门课，必须有一个好的三角函数基本功。
    所以他准备和奶牛们做一个“Sine之舞”的游戏，寓教于乐，提高奶牛们的计算能力。
　　不妨设
　　An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)
　　Sn=(...(A1+n)A2+n-1)A3+...+2)An+1
　　FJ想让奶牛们计算Sn的值，请你帮助FJ打印出Sn的完整表达式，以方便奶牛们做题。
输入格式
　　仅有一个数：N<201。
输出格式
　　请输出相应的表达式Sn，以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
( (sin(1)+3) sin(1–sin(2)) +2)  sin(1–sin(2+sin(3))) +1
  (  (A1 +3)  *  A2 + 2      )   *    A3    +   1
'''


# 函数c_an，用于计算sin函数的展开式中的每一项。参数：c_num表示当前项的序号，c_N表示展开式的总项数。

def c_an(c_num, c_N):
    if c_num == c_N:  # 如果当前项的序号等于总项数，那么返回该项的字符串表示，即f'sin({c_num})'。
        return f'sin({c_num})'
    str0 = c_an(c_num + 1, c_N)  # 否则，递归调用c_an函数计算下一项的字符串表示

    if c_num % 2:  # 然后根据当前项的序号是奇数还是偶数，返回相应的字符串表示。
        return f'sin({c_num}-{str0})'
    else:
        return f'sin({c_num}+{str0})'


# 接下来定义了一个函数c_sn，用于计算sin函数展开式的和。
# 参数：s_num表示当前要计算的和的项数，s_N表示总共要计算的项数。

def c_sn(s_num, s_N):
    if s_num == 1:  # 如果当前要计算的是第一项，那么直接返回第一项的字符串表示。
        return f'{c_an(1, 1)}+{s_N - s_num + 1}'
    str0 = c_sn(s_num - 1, s_N)  # 否则，递归调用c_sn函数计算前面项的字符串表示

    # 然后根据当前要计算的项数调用c_an函数计算当前项的字符串表示，最后返回两部分字符串拼接的结果。
    return f'({str0}){c_an(1, s_num)}+{s_N - s_num + 1}'
    #          (A1 +3 ) * A2 + 2 ......

# 最后，读取一个整数N作为总项数，调用c_sn函数计算sin函数展开式的和，并打印结果。
N = int(input())
print(c_sn(N, N))
